#ifndef __CSTRING_HPP__
#define __CSTRING_HPP__

#include <cstring>
#include <stdint.h>

class CString
{
private:
    char* m_str;
public:
    CString(const char* str = "");
    CString(const CString& str);
    CString(CString&& str) noexcept;
    ~CString();

    CString& operator=(const CString& str);
    CString& operator=(CString&& str) noexcept;
    CString operator+(const CString& str);

    // 不包含末尾 '\0' 的大小
    [[nodiscard]] uint32_t size() const;

    [[nodiscard]] char *c_str() const;
};

#endif // __CSTRING_HPP__